package com.wego.pdcms.module.main.controller.admin.patient.vo;

import lombok.*;

import java.time.LocalDate;
import java.util.*;
import io.swagger.annotations.*;

import com.alibaba.excel.annotation.ExcelProperty;
import com.wego.pdcms.framework.excel.core.annotations.DictFormat;
import com.wego.pdcms.framework.excel.core.convert.DictConvert;


/**
 * 患者信息 Excel VO
 *
 * @author gjp
 */
@Data
public class PatientExcelVO {

    @ExcelProperty("患者登记表")
    private Integer patientId;

    @ExcelProperty("患者hisId")
    private String patientHisId;

    @ExcelProperty("门诊号")
    private String outpatientServiceNumber;

    @ExcelProperty("腹透号")
    private String pdNumber;

    @ExcelProperty("姓名")
    private String patientNm;

    @ExcelProperty("拼音码")
    private String patientPy;

    @ExcelProperty(value = "性别 0女 1男 ", converter = DictConvert.class)
    @DictFormat("patient_sex") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private String patientSex;

    @ExcelProperty("年龄")
    private String patientAge;

    @ExcelProperty(value = "民族", converter = DictConvert.class)
    @DictFormat("patient_nation") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private String patientNation;

    @ExcelProperty("婚姻状况0001未婚 0002 已婚 0003 丧偶 0004 离婚 0005 其他")
    private String maritalStatus;

    @ExcelProperty("身份证号")
    private String patientCardId;

    @ExcelProperty("收费模式")
    private String chargeMode;

    @ExcelProperty("患者类型")
    private String chargeType;

    @ExcelProperty("出生日期")
    private String patientBirthday;

    @ExcelProperty("身高")
    private String patientHeight;

    @ExcelProperty("净体重")
    private String dryWeight;

    @ExcelProperty("入院时间")
    private String inHospitalDate;

    @ExcelProperty("出院时间")
    private String dischargeDate;

    @ExcelProperty("死亡时间")
    private String deathDate;

    @ExcelProperty("联系电话")
    private String patientTel;

    @ExcelProperty("联系电话2")
    private String patientTel2;

    @ExcelProperty("邮政编码")
    private String postCode;

    @ExcelProperty("住院号")
    private String hospitalizationNumber;

    @ExcelProperty("通讯地址")
    private String patientAddress;

    @ExcelProperty("工作性质 onW退休  offW在职")
    private String patientWorkType;

    @ExcelProperty("工作单位")
    private String patientUnit;

    @ExcelProperty("紧急联系人")
    private String emergencyContact;

    @ExcelProperty("联系人关系")
    private String patientRelation;

    @ExcelProperty("医保卡号")
    private String yiBaoCard;

    @ExcelProperty("删除标志位 0删除 1 未删除")
    private String isActive;

    @ExcelProperty("创建人")
    private String createBy;

    @ExcelProperty("创建时间")
    private String createDt;

    @ExcelProperty("更新人")
    private String updateBy;

    @ExcelProperty("更新时间")
    private String updateDt;

    @ExcelProperty("患者类型1  1感染 / 0未感染")
    private String patientTypeOne;

    @ExcelProperty("患者类型2  1住院/2门诊")
    private String patientTypeTwo;

    @ExcelProperty(value = "诊断", converter = DictConvert.class)
    @DictFormat("diagnose_info") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private String diagnose;

    @ExcelProperty("原发病类型")
    private String protopathy;

    @ExcelProperty("病理诊断")
    private String pathologicDiagnose;

    @ExcelProperty("合并症")
    private String complication;

    @ExcelProperty("置管类型")
    private String zhiguanType;

    @ExcelProperty("置管时间")
    private String zhiguanDate;

    @ExcelProperty("既往病史")
    private String pastMedicalHistory;

    @ExcelProperty("hd几年")
    private String hdYears;

    @ExcelProperty("肾移植几年")
    private String rtYears;

    @ExcelProperty("乙肝")
    private String isHepatitisB;

    @ExcelProperty("丙肝")
    private String isHepatitisC;

    @ExcelProperty("是否糖尿病")
    private String isDm;

    @ExcelProperty("尿量")
    private String urinaryVolume;

    @ExcelProperty("hiv")
    private String isHiv;

    @ExcelProperty("梅毒")
    private String isSyphilis;

    @ExcelProperty("病人状态（1入档，2死亡，3结案）")
    private String patientStatus;

    @ExcelProperty("腹透开始时间")
    private String firstTreatmentDate;

    @ExcelProperty("备注")
    private String remarks;

    @ExcelProperty("离开腹透原因")
    private String leavePdReason;

    @ExcelProperty("离开腹透日期")
    private String leavePdDate;

    @ExcelProperty("腹膜炎重点病人")
    private String isPeritonitisPatient;

    @ExcelProperty("外口感染患者")
    private String isExternalInfectionPatient;

    @ExcelProperty("容量管控重点病人")
    private String isCapcontrolPatient;

    @ExcelProperty("首次腹透时已透次数")
    private Integer firstPdTimes;

    @ExcelProperty("腹透次数")
    private Integer pdTimes;

    @ExcelProperty("复查周期")
    private String revisitCycle;

    @ExcelProperty("首次复诊日期")
    private String revisitDate;

    @ExcelProperty("复诊计划id")
    private String revisitRecordsId;

    @ExcelProperty("随访周期")
    private String followupCycle;

    @ExcelProperty("下次随访日期")
    private String nextFollowupDate;

    @ExcelProperty("标记患者")
    private String patientFlag;

    @ExcelProperty("死亡原因")
    private String deathReason;

    @ExcelProperty("初次诊断（上报平台的临床诊断）")
    private String linchuangZhenduan;

    @ExcelProperty("转为血透原因")
    private String hemodialysisReason;

    @ExcelProperty("教育程度")
    private String educationLevel;

    @ExcelProperty("职业")
    private String occupation;

    @ExcelProperty("原发病诊断日期")
    private String protopathyDate;

    @ExcelProperty("临床诊断日期")
    private String clinicalDiagnosisDate;

    @ExcelProperty("是否导出过退出记录：0为未导出，1为已导出")
    private String isInOutExportStatus;

    @ExcelProperty("门诊为1，住院为2")
    private String patientProperty;

    @ExcelProperty("app注册码")
    private String registrationCode;

    @ExcelProperty("二维码")
    private byte[] qrCodeImg;

    @ExcelProperty("责任护士")
    private String chargeNurse;

    @ExcelProperty("责任医生")
    private String chargeDoctor;

    @ExcelProperty("住院次数")
    private String hospitalTimes;

    @ExcelProperty("住院科室")
    private String hospitalDepart;

    @ExcelProperty("住院床位号")
    private String hospitalBed;

    @ExcelProperty("责任医生所属科室")
    private String chargeDoctorDepart;

    @ExcelProperty("科室编码")
    private String hospitalDepartNumber;

    @ExcelProperty("病历类型日期")
    private LocalDate caseTypeDate;

    @ExcelProperty("病理类型结果")
    private String caseTypeResult;

    @ExcelProperty("是否注册")
    private String isRegister;

    @ExcelProperty("下次置管日期")
    private String nextVasDate;

    @ExcelProperty("下次透析充分性日期")
    private String nextKtvDate;

    @ExcelProperty("下次腹膜平衡试验日期")
    private String nextPetDate;

    @ExcelProperty("录入时间")
    private String inDate;

    @ExcelProperty("失访原因")
    private String lostFollowReason;

}
